/*
 * 文件名：AuthRealm.java
 * 版权： Copyright 2002-2007 12316yun. All Rights Reserved.
 * 描述：〈描述〉

 * 修改人：王钰玺
 * 修改时间：2018/4/27 10:40
 * 修改单号：〈修改单号〉
 * 修改内容：〈修改内容〉
 */
package com.yun12316.framework.shiro.realm;

import org.apache.shiro.authc.*;
import org.apache.shiro.authz.AuthorizationInfo;
import org.apache.shiro.authz.SimpleAuthorizationInfo;
import org.apache.shiro.realm.AuthorizingRealm;
import org.apache.shiro.subject.PrincipalCollection;

/**
 * 权限认证
 * <p>
 * <p>权限认证</p>
 *
 * @author 王钰玺 2018/4/27
 * @see
 * @since 1.0
 */
public class AuthRealm  extends AuthorizingRealm {


    /**
     * 方面用于加密
     * 参数：AuthenticationToken是从表单穿过来封装好的对象
     */
    @Override
    protected AuthenticationInfo doGetAuthenticationInfo(AuthenticationToken token) {

        //将AuthenticationToken强转为AuthenticationToken对象
        UsernamePasswordToken upToken=(UsernamePasswordToken)token;


        //认证的实体信息，可以是username，也可以是用户的实体类对象，这里用的用户名
        Object principal= upToken.getUsername();

        if (! "wangyuxi".equals(principal)) {
             throw new UnknownAccountException();
        }

        //创建SimpleAuthenticationInfo对象，并且把username和password等信息封装到里面
        return  new SimpleAuthenticationInfo(principal, "123456",this.getName());
    }


    //用于授权
    @Override
    protected AuthorizationInfo doGetAuthorizationInfo(PrincipalCollection principals) {
        return  new SimpleAuthorizationInfo();
    }
}
